﻿using System.Collections.Generic;
using Microsoft.SharePoint;

namespace Eneta.Portal.Common.Dto
{
    /// <summary>
    /// Class for companies.
    /// </summary>
    public class CompanyDto : BaseDto
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="CompanyDto"/> class.
        /// </summary>
        public CompanyDto()
        {
            Offices = new List<OfficeDto>();
            IOTopics = new List<IOTopicDto>();
        }

        /// <summary>
        /// Gets or sets the user name of the user who inserted the company.
        /// </summary>
        public string AuthorUserName { get; set; }

        /// <summary>
        /// Gets or sets the description of company.
        /// </summary>
        public string Description { get; set; }

        /// <summary>
        /// Gets or sets the employees count range. This property is in form of ranges, 
        /// by example 1 - 10 etc.
        /// </summary>
        public string Employees { get; set; }

        /// <summary>
        /// Gets or sets the number of certified employees in company.
        /// </summary>
        public string CertifiedEmployees { get; set; }

        public string DisplayUrl { get; set; }

        /// <summary>
        /// Gets or sets the file name of company page.
        /// </summary>
        public string FileName { get; set; }

        /// <summary>
        /// Gets or sets the list offices. 
        /// </summary>
        public List<OfficeDto> Offices { get; internal set; }

        /// <summary>
        /// Gets or sets the owner profile id.
        /// </summary>
        public int OwnerProfileId { get; set; }

        /// <summary>
        /// Gets or sets the name taken from company's owner profile.
        /// </summary>
        public string OwnerProfileName { get; set; }

        /// <summary>
        /// Gets or sets the partnership level of company.
        /// </summary>
        public string PartnershipLevel { get; set; }

        /// <summary>
        /// Gets or sets the short description of company.
        /// </summary>        
        public string ShortDescription { get; set; }

        /// <summary>
        /// Gets or sets the moderation status of company.
        /// </summary>
        public SPModerationStatusType Status { get; set; }

        /// <summary>
        /// Gets or sets the moderation status comment.
        /// </summary>
        public string StatusComment { get; set; }

        /// <summary>
        /// Gets or sets the street part of company's address.
        /// </summary>
        public string Street { get; set; }

        /// <summary>
        /// Gets or sets the zip part of company's address.
        /// </summary>
        public string Zip { get; set; }

        /// <summary>
        /// Gets or sets the city part of company's address.
        /// </summary>
        public string City { get; set; }

        /// <summary>
        /// Gets or sets the home page address.
        /// </summary>
        public string HomePage { get; set; }

        /// <summary>
        /// Gets or sets the name of the company representative.
        /// </summary>
        public string ContactName { get; set; }

        /// <summary>
        /// Gets or sets the e-mail address of company representative.
        /// </summary>
        public string ContactEmail { get; set; }

        /// <summary>
        /// Gets or sets the phone number of company representative.
        /// </summary>
        public string ContactPhone {get; set;}

        public IList<IOTopicDto> IOTopics { get; internal set; }
    }
}